#include <stc8h.h>
#include "lcd2.h"
#include "fun.h"
char code numcode[]={
    0x7B,       /*'0', 0*/
    0x28,       /*'1', 1*/
    0x5E,       /*'2', 2*/
    0x6E,       /*'3', 3*/
    0x2D,       /*'4', 4*/
    0x67,       /*'5', 5*/
    0x77,       /*'6', 6*/
    0x2A,       /*'7', 7*/
    0x7F,       /*'8', 8*/
    0x6F        /*'9', 9*/
};

char code numcode1[]={
0xED,       /*'0', 0*/
0x28,       /*'1', 1*/
0xB5,       /*'2', 2*/
0xB9,       /*'3', 3*/
0x78,       /*'4', 4*/
0xD9,       /*'5', 5*/
0xDD,       /*'6', 6*/
0xA8,       /*'7', 7*/
0xFD,       /*'8', 8*/
0xF9        /*'9', 9*/
};
void LCD_init(void){


	P_SW2|=0x80;
	X32KCR=0x80;	
	// IRC32KCR =0x80;	
	LCDCFG = 0xc3;
	DBLEN=2;
	COMLENH=0x00;
	COMLENM=0x00;
	COMLENL=0x7f;
	BLINKRATE=30;
	COMON  = 0x0f;                // COM使能寄存器
	SEGON1 = 0xff;                // SEG线使能寄存器1, SEG7~SEG0
	SEGON2 = 0xff;                // SEG线使能寄存器2, SEG15~SEG8
	SEGON3 = 0xff;                // SEG线使能寄存器3, SEG23~SEG16
	SEGON4 = 0xff;                // SEG线使能寄存器4, SEG31~SEG24
	SEGON5 = 0xff;                // SEG线使能寄存器5, SEG39~SEG32

	C0SEGV1=0xff;
	C0SEGV2=0xff;
	C0SEGV3=0xff;
	C0SEGV4=0xff;

	C1SEGV1=0xff;
	C1SEGV2=0xff;
	C1SEGV3=0xff;
	C1SEGV4=0xff;

	C2SEGV1=0xff;
	C2SEGV2=0xff;
	C2SEGV3=0xff;
	C2SEGV4=0xff;

	C3SEGV1=0xff;
	C3SEGV2=0xff;
	C3SEGV3=0xff;
	C3SEGV4=0xff;


	LCDCR=0x01;
}
void lcdshowinit(void){
	C0SEGV4&=0xf6;
	C1SEGV4&=0xf6;
	C2SEGV4&=0xf0;
	C3SEGV4&=0xf2;

	C0SEGV1&=0x3f;
	C1SEGV1&=0x3f;
	C2SEGV1&=0x3f;
	C3SEGV1&=0x3f;
}
void showsec(unsigned char n){
	char cts;

	
	cts=numcode[n%10];
	UartSend(n%10);
	UartSend(n/10);
	C0SEGV2&=0xc3;
	C1SEGV2&=0xc3;
	C2SEGV2&=0xc3;
	C3SEGV2&=0xc3;
	C0SEGV2|=((cts&0x03)<<4);
	cts=cts>>2;
	C1SEGV2|=((cts&0x03)<<4);
	cts=cts>>2;
	C2SEGV2|=((cts&0x03)<<4);
	cts=cts>>2;
	C3SEGV2|=((cts&0x03)<<4);

	cts=numcode[n/10];

	C0SEGV2|=(cts&0x03)<<2;
	cts=cts>>2;
	C1SEGV2|=(cts&0x03)<<2;
	cts=cts>>2;
	C2SEGV2|=(cts&0x03)<<2;
	cts=cts>>2;
	C3SEGV2|=(cts&0x03)<<2;
}
void showm(char m,char h){
	char cts;
	
	C0SEGV2&=0xfc;
	C1SEGV2&=0xfc;
	C2SEGV2&=0xfc;
	C3SEGV2&=0xfc;

	C0SEGV1&=0xc0;
	C1SEGV1&=0xc0;
	C2SEGV1&=0xc0;
	C3SEGV1&=0xc0;

	cts=numcode[m%10];
	C0SEGV2|=(cts&0x03);
	cts=cts>>2;
	C1SEGV2|=(cts&0x03);
	cts=cts>>2;
	C2SEGV2|=(cts&0x03);
	cts=cts>>2;
	C3SEGV2|=(cts&0x03);

	cts=numcode[m/10];
	C0SEGV1|=((cts&0x03)<<4);
	cts=cts>>2;
	C1SEGV1|=((cts&0x03)<<4);
	cts=cts>>2;
	C2SEGV1|=((cts&0x03)<<4);
	cts=cts>>2;
	C3SEGV1|=((cts&0x03)<<4);

	cts=numcode[h%10];

	C0SEGV1|=(cts&0x03)<<2;
	cts=cts>>2;
	C1SEGV1|=(cts&0x03)<<2;
	cts=cts>>2;
	C2SEGV1|=(cts&0x03)<<2;
	cts=cts>>2;
	C3SEGV1|=(cts&0x03)<<2;

	cts=numcode[h/10];
	C0SEGV1|=(cts&0x03);
	cts=cts>>2;
	C1SEGV1|=(cts&0x03);
	cts=cts>>2;
	C2SEGV1|=(cts&0x03);
	cts=cts>>2;
	C3SEGV1|=(cts&0x03);
}
void showte(void){
	char cts;
	C0SEGV3=0x20;
	C1SEGV3=0x00;
	C2SEGV3=0x00;
	C3SEGV3=0x00;

	cts=numcode1[5];

	C0SEGV2|=(cts&0x03);
	cts=cts>>2;
	C1SEGV2|=(cts&0x03);
	cts=cts>>2;
	C2SEGV2|=(cts&0x03);
	cts=cts>>2;
	C3SEGV2|=(cts&0x03);

	cts=numcode1[6];
	C0SEGV3|=(cts&0x03)<<2;
	cts=cts>>2;
	C1SEGV3|=(cts&0x03)<<2;
	cts=cts>>2;
	C2SEGV3|=(cts&0x03)<<2;
	cts=cts>>2;
	C3SEGV3|=(cts&0x03)<<2;

	cts=numcode1[7];
	C0SEGV3|=(cts&0x03)<<4;
	cts=cts>>2;
	C1SEGV3|=(cts&0x03)<<4;
	cts=cts>>2;
	C2SEGV3|=(cts&0x03)<<4;
	cts=cts>>2;
	C3SEGV3|=(cts&0x03)<<4;

	cts=numcode1[3];
	C0SEGV3|=(cts&0x01)<<6;
	cts=cts>>2;
	C1SEGV3|=(cts&0x01)<<6;
	cts=cts>>2;
	C2SEGV3|=(cts&0x01)<<6;
	cts=cts>>2;
	C3SEGV3|=(cts&0x01)<<6;

	cts=numcode1[3];
	C0SEGV4|=(cts&0x02)>>1;
	cts=cts>>2;
	C1SEGV4|=(cts&0x02)>>1;
	cts=cts>>2;
	C2SEGV4|=(cts&0x02)>>1;
	cts=cts>>2;
	C3SEGV4|=(cts&0x02)>>1;

}